// ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
//============================================================
// 
// File:    StringHelper.cs 
//
// Summary: Helper methods for strings. 
//
//===========================================================

 
using System;
using System.IO; 
using System.Runtime.Remoting; 

 
namespace System.Runtime.Remoting.Channels
{

    internal static class StringHelper 
    {
        internal static bool StartsWithDoubleUnderscore(String str) 
        { 
            if (str.Length < 2)
                return false; 

            return (str[0] == '_') && (str[1] == '_');
        } // StartsWithDoubleUnderscore
 
        internal static bool StartsWithAsciiIgnoreCasePrefixLower(String str, String asciiPrefix)
        { 
            // The caller should know that the arguments aren't null. 

            int prefixLen = asciiPrefix.Length; 
            if (str.Length < prefixLen)
                return false;

            for (int i = 0; i < prefixLen; i++) 
            {
                // The prefix is assumed to be in lowercase 
                if (ToLowerAscii(str[i]) != asciiPrefix[i]) 
                {
                    return false; 
                }
            }

            return true; 
        } // StartsWithAsciiIgnoreCase
 
        private static char ToLowerAscii(char ch) 
        {
            if ((ch >= 'A') && (ch <= 'Z')) 
            {
                return (char)(ch + ('a' - 'A'));
            }
 
            return ch;
        } // ToLowerAscii 
 

    } // StringHelper 

} // namespace System.Runtime.Remoting.Channels

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
//============================================================
// 
// File:    StringHelper.cs 
//
// Summary: Helper methods for strings. 
//
//===========================================================

 
using System;
using System.IO; 
using System.Runtime.Remoting; 

 
namespace System.Runtime.Remoting.Channels
{

    internal static class StringHelper 
    {
        internal static bool StartsWithDoubleUnderscore(String str) 
        { 
            if (str.Length < 2)
                return false; 

            return (str[0] == '_') && (str[1] == '_');
        } // StartsWithDoubleUnderscore
 
        internal static bool StartsWithAsciiIgnoreCasePrefixLower(String str, String asciiPrefix)
        { 
            // The caller should know that the arguments aren't null. 

            int prefixLen = asciiPrefix.Length; 
            if (str.Length < prefixLen)
                return false;

            for (int i = 0; i < prefixLen; i++) 
            {
                // The prefix is assumed to be in lowercase 
                if (ToLowerAscii(str[i]) != asciiPrefix[i]) 
                {
                    return false; 
                }
            }

            return true; 
        } // StartsWithAsciiIgnoreCase
 
        private static char ToLowerAscii(char ch) 
        {
            if ((ch >= 'A') && (ch <= 'Z')) 
            {
                return (char)(ch + ('a' - 'A'));
            }
 
            return ch;
        } // ToLowerAscii 
 

    } // StringHelper 

} // namespace System.Runtime.Remoting.Channels

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
